/******************************************************
* Team WB
* Brett Cate, William Kim
* 
* Main Program Header
* This program handles the user interface for the SC-2
* computer simulation. 
*******************************************************/

#include <ncurses.h>

#ifndef REGISTERFILE_H
#include "registerFile.h"
#endif
#ifndef MEMORYMODULE_H
#include "memoryModule.h"
#endif
#ifndef ALU_H
#include "alu.h"
#endif
#ifndef DEBUGMONITOR_H
#include "debugMonitor.h"
#endif

/*
Returns a user choice from the welcome window for this program
*/
int mainMenu();

/*
Returns a master window for this program
*/
WINDOW* master_window();

/*
Returns a window displaying the register file.
*/
WINDOW* registerFile_window();

/*
Returns a window displaying the ALU registers.
*/
WINDOW* alu_window();

/*
Returns a window displaying the memory.
*/
WINDOW* memory_window();

/* 
Displays register menu options and prompts for user choice.
*/
void main_registerMenu(RegisterFilePtr the_registerFilePtr);

/* 
Displays memory menu options and prompts for user choice.
*/
void main_memoryMenu(MemoryModulePtr the_memoryModulePtr);

/*
Returns the respective error message given an error code.

parameter (the_error_code): the error code.

return value: an error message as a string.
*/
char* main_errorMessage(int the_error_code);

/* End Program */
